home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / fb386 / quiz2 / q_sample.bas < prev    next >
BASIC Source File  |  1991-10-18  |  11KB  |  255 lines

  1. 10 'fm towns quiz project'91
  2. 20 'programmed by Hiroki Tateno 1991 version 0.01c/1991-06-08
  3. 30 'common program interface version 中間サンプルver1
  4. 40 'programmed by Hiroki Tateno 1991 
  5. 50 'copyright 1991 Plus Alpha /TEAM Alpha   ALL RIGHT RESERVED
  6. 60 'FMTOWNSクイズの中間バージョンです。よって、出題ミスまたは
  7. 70 '制限が多々あります。ジャンル選択が”無差別級オタク”のみでありま
  8. 80 'す。その他の制限はDOCファイルを参考にして下さい。
  9. 90 '--------------------------------------------------------
  10. 100 RANDOMIZE TIME/4:GOSUB *OPENING
  11. 110 GOSUB *READDATA:SCREEN@ 1:CLS:DIM NRNU(10)
  12. 120 *START'---------------------------ガメンヲツクルンデスヨ
  13. 130 FOR I=0 TO 14:FOR J=0 TO 19
  14. 140  PUT@A (J*16,I*16)-(J*16+15,I*16+15),C6%,MATTE,,,0
  15. 150 NEXT J       :NEXT I
  16. 160 LINE (7,23)-(312,88),PSET,[255,255,255],BF
  17. 170 LINE (9,25)-(310,86),PSET,[0,0,0],BF
  18. 180 LINE (54,102)-(268,200),PSET,[255,255,255],BF
  19. 190 LINE (56,104)-(266,198),PSET,[0,0,0],BF
  20. 200 LINE (272,96)-(318,143),PSET,[0,0,0],BF
  21. 210 LINE (272,160)-(318,207),PSET,[0,0,0],BF
  22. 220 FOR I=0 TO 20
  23. 230 PUT@A (57+I*10,92)-(64+I*10,99),C5%,MATTE,,,0
  24. 240 NEXT I
  25. 250 SYMBOL (7,96),"ノ",1,1,[0,255,0],,PSET,1
  26. 260 SYMBOL (7,112),"ル",1,1,[0,255,0],,PSET,1
  27. 270 SYMBOL (7,128),"マ",1,1,[0,255,0],,PSET,1
  28. 280 SYMBOL (32,96),"正",1,1,[0,255,0],,PSET,1
  29. 290 SYMBOL (32,112),"答",1,1,[0,255,0],,PSET,1
  30. 300 SYMBOL (32,128),"数",1,1,[0,255,0],,PSET,1
  31. 310 FOR I=0 TO 9
  32. 320 PUT@A (7,144+I*8)-(22,150+I*8),C3%,MATTE,,,0
  33. 330 PUT@A (32,144+I*8)-(47,150+I*8),C3%,MATTE,,,0
  34. 340 NEXT I
  35. 350 SYMBOL (64,208),"STAGE",1,1,[0,255,0],,PSET,1
  36. 360 SYMBOL (64,224),"SCORE",1,1,[0,255,0],,PSET,1
  37. 370 '------------------------------------------タイトル!ヨシエノクイズデゴゥゴゥ 
  38. 380 ' for bgm
  39. 390 SYMBOL (16,32),"FMTOWNS",1,1,[255,255,255],,PSET,1
  40. 400 SYMBOL (16,48),"  クイズでいっちょやったるかい",1,1,[255,255,255],,PSET,1
  41. 410 SYMBOL (16,64),"    ジャンルをえらんでネ♪",1,1,[255,255,255],,PSET,1
  42. 420 JI$(1)="1 開発中":JI$(2)="2 開発中":JI$(3)="3 開発中":JI$(4)="4 無差別級ヲタク":JI$(5)="5 開発中"
  43. 430 FOR I=1 TO 5
  44. 440 SYMBOL (64,96+I*16),JI$(I),1,1,[255,255,255],,PSET,1
  45. 450 NEXT I
  46. 460 '-----------------------------------------イチオウジャンルセレクトデシ・・・・
  47. 470 SEL=0:LMP=0:LINE (96,112)-(255,127),XOR,[255,255,255],BF
  48. 480 WAIT 5:A=PAD(1):B=PTRIG(1)
  49. 490 IF B<>0 THEN *SEL3
  50. 500 IF A<>0 THEN GOSUB *SEL2
  51. 510 BLMP=LMP:LMP=LMP+1
  52. 520 IF LMP>20 THEN LMP=0
  53. 530 PUT@A (57+LMP*10,92)-(64+LMP*10,99),C4%,MATTE,,,0
  54. 540 PUT@A (57+BLMP*10,92)-(64+BLMP*10,99),C5%,MATTE,,,0
  55. 550 GOTO 480
  56. 560 *SEL2
  57. 570 IF A=1 THEN BSEL=SEL:SEL=SEL-1:IF SEL<0 THEN SEL=4:GOTO *SELVI ELSE GOTO *SELVI
  58. 580 IF A=5 THEN BSEL=SEL:SEL=SEL+1:IF SEL>4 THEN SEL=0:GOTO *SELVI ELSE GOTO *SELVI 
  59. 590 RETURN
  60. 600 *SELVI
  61. 610 LINE (96,112+BSEL*16)-(255,127+BSEL*16),XOR,[255,255,255],BF
  62. 620 LINE (96,112+SEL*16)-(255,127+SEL*16),XOR,[255,255,255],BF
  63. 630 WAIT 3:RETURN
  64. 640 *SEL3
  65. 650 SEL=SEL+1'    データー ガ 0カラ4マデニナッテル >>> 1カラ5マデニスル
  66. 660 LINE (16,32)-(303,79),PSET,[0,0,0],BF
  67. 670 LINE (96,112)-(255,191),PSET,[0,0,0],BF
  68. 680 FOR I=0 TO 20
  69. 690 PUT@A (57+I*10,92)-(64+I*10,99),C5%,MATTE,,,0
  70. 700 NEXT I
  71. 710 'for bgm
  72. 720 '----------------------------------イニシャライズ/ゲームスタートショリ ダピョォォン
  73. 730 FOR I=0 TO QMAX:DETA(I)=0:NEXT I
  74. 740 JI$(1)="スポーツ":JI$(2)="芸能・音楽":JI$(3)="自然・科学・社会":JI$(4)="ヲタク・アニメ":JI$(5)="コンピュータ関連" 
  75. 750 STAGE=1:SYMBOL (0,0),"ジャンル:"+JI$(SEL),1,1,[0,255,0],,PSET,1
  76. 760 NRNU(1)=4:NRNU(2)=5:NRNU(3)=6:NRNU(4)=6:NRNU(5)=7:NRNU(6)=7:NRNU(7)=8:NRNU(8)=9:NRNU(9)=9:NRNU(10)=10
  77. 770 SC=0:
  78. 780 *SSTAGE'---------------------ステージスターショリ イチオウネ・・・
  79. 790 FOR I=0 TO 5:PUT@A (160+I*16,208)-(175+I*16,223),C6%,MATTE,,,0:NEXT I
  80. 800 FOR I=9 TO 10-NRNU(STAGE) STEP -1
  81. 810 PUT@A (7,144+I*8)-(22,150+I*8),C2%,MATTE,,,0
  82. 820 NEXT I
  83. 830 MONO=1:SYMBOL (200,208),STR$(STAGE),1,1,[0,255,0],,PSET,1
  84. 840 *MHYOJI'---------------------------モンダイヒョウジ ノ マエショリナンダナコレガ
  85. 850 FOR I=0 TO 7
  86. 860 PUT@A (208+I*16,0)-(223+I*16,15),C6%,MATTE,,,0
  87. 870 NEXT I
  88. 880 SYMBOL (224,0),"第"+STR$(MONO)+"問",1,1,[0,255,0],,PSET,1
  89. 890 FOR I=0 TO 20
  90. 900 PUT@A (57+I*10,92)-(64+I*10,99),C5%,MATTE,,,0
  91. 910 NEXT I
  92. 920 '--------------------------------------モンダイヒョウジ カイシ シチャッタリシテ・・・
  93. 930 MSEL=INT(RND(1)*QMAX)+1
  94. 940 IF DETA(MSEL)=1 THEN 930
  95. 950 DETA(MSEL)=1
  96. 960 SYMBOL (16,32),QDAT1$(SEL,MSEL),1,1,[255,255,255],,PSET,1
  97. 970 SYMBOL (16,48),QDAT2$(SEL,MSEL),1,1,[255,255,255],,PSET,1
  98. 980 SYMBOL (16,64),QDAT3$(SEL,MSEL),1,1,[255,255,255],,PSET,1
  99. 990 SYMBOL (96,112),QDAT4$(SEL,MSEL),1,1,[255,255,255],,PSET,1
  100. 1000 SYMBOL (96,128),QDAT5$(SEL,MSEL),1,1,[255,255,255],,PSET,1
  101. 1010 SYMBOL (96,144),QDAT6$(SEL,MSEL),1,1,[255,255,255],,PSET,1
  102. 1020 SYMBOL (96,160),QDAT7$(SEL,MSEL),1,1,[255,255,255],,PSET,1
  103. 1030 SYMBOL (96,176),QDAT8$(SEL,MSEL),1,1,[255,255,255],,PSET,1
  104. 1040 '----------------------------------------コタエ ヲ セレクト スルンダヨォォン
  105. 1050 KOTAE=0:ZZZ=0:LMP=-1:LINE (96,112)-(255,127),XOR,[255,255,255],BF
  106. 1060 WAIT 3:A=PAD(1):B=PTRIG(1)
  107. 1070 IF B<>0 THEN *KOTAE3
  108. 1080 IF A<>0 THEN GOSUB *KOTAE2
  109. 1090 IF ZZZ>8 THEN LMP=LMP+1:ZZZ=0 ELSE ZZZ=ZZZ+1:GOTO 1060
  110. 1100 IF LMP>20 THEN GOTO *TIMEOUT
  111. 1110 PUT@A (57+LMP*10,92)-(64+LMP*10,99),C4%,MATTE,,,0
  112. 1120 WAIT 5:GOTO 1060
  113. 1130 *KOTAE2
  114. 1140 IF A=1 THEN BKOTAE=KOTAE:KOTAE=KOTAE-1:IF KOTAE<0 THEN KOTAE=4:GOTO *KOTAEVI ELSE GOTO *KOTAEVI
  115. 1150 IF A=5 THEN BKOTAE=KOTAE:KOTAE=KOTAE+1:IF KOTAE>4 THEN KOTAE=0:GOTO *KOTAEVI ELSE GOTO *KOTAEVI
  116. 1160 RETURN
  117. 1170 *KOTAEVI
  118. 1180 LINE (96,112+BKOTAE*16)-(255,127+BKOTAE*16),XOR,[255,255,255],BF
  119. 1190 LINE (96,112+KOTAE*16)-(255,127+KOTAE*16),XOR,[255,255,255],BF
  120. 1200 ZZZ=ZZZ+3:WAIT 4:RETURN
  121. 1210 *KOTAE3
  122. 1220 KOTAE=KOTAE+1
  123. 1230 IF KOTAE=QDAT9(SEL,MSEL) THEN *SEIKAI ELSE *MACHIGAI
  124. 1240 *TIMEOUT
  125. 1250 'reserve 
  126. 1260 TI=1
  127. 1270 GOTO *MACHIGAI
  128. 1280 *SEIKAI'---------------------------セイカイデアルゾ アリガタクオモエ
  129. 1290 LINE (96,112+(KOTAE-1)*16)-(255,127+(KOTAE-1)*16),XOR,[255,255,255],BF
  130. 1300 FOR I=1 TO 5
  131. 1310 IF QDAT9(SEL,MSEL)<>I THEN LINE (96,96+I*16)-(255,111+I*16),PSET,[0,0,0],BF
  132. 1320 NEXT I
  133. 1330 SYMBOL (96,96+16*QDAT9(SEL,MSEL)),"    正解    ",1,1,[0,255,0],,PSET,1
  134. 1340 WAIT 100
  135. 1350 SEIKAI=SEIKAI+1:MONO=MONO+1
  136. 1360 PUT@A (32,144+(10-SEIKAI)*8)-(47,150+(10-SEIKAI)*8),C1%,MATTE,,,0
  137. 1370 GOTO *HANTEI
  138. 1380 *MACHIGAI'--------------------------オロカモノ!マチガウトハ・・・・
  139. 1390 IF TI=1 THEN TI=0:GOTO *SPUT
  140. 1400 FOR I=1 TO 5
  141. 1410 IF QDAT9(SEL,MSEL)=I OR KOTAE=I THEN 1420 ELSE LINE (96,96+I*16)-(255,111+I*16),PSET,[0,0,0],BF
  142. 1420 NEXT I
  143. 1430 SYMBOL (96,96+16*QDAT9(SEL,MSEL)),"    正解    ",1,1,[0,255,0],,PSET,1
  144. 1440 SYMBOL (96,96+16*KOTAE),"   まちがい    ",1,1,[0,255,0],,PSET,1
  145. 1450 WAIT 100
  146. 1460 MONO=MONO+1
  147. 1470 GOTO *HANTEI
  148. 1480 *SPUT'------------------------タイムアップッテ、ア-タ、ユ-ジューフダン デショォ
  149. 1490 SYMBOL (96,96+16*3),"  TIMEUP  ",1,1,[0,255,0],,XOR,1
  150. 1500 WAIT 100
  151. 1510 SYMBOL (96,96+16*3),"  TIMEUP  ",1,1,[0,255,0],,XOR,1
  152. 1520 FOR I=1 TO 5
  153. 1530 IF QDAT9(SEL,MSEL)<>I THEN LINE (96,96+I*16)-(255,111+I*16),PSET,[0,0,0],BF
  154. 1540 NEXT I
  155. 1550 SYMBOL (96,96+16*QDAT9(SEL,MSEL)),"    正解    ",1,1,[0,255,0],,PSET,1
  156. 1560 WAIT 100
  157. 1570 MONO=MONO+1
  158. 1580 GOTO *HANTEI
  159. 1590 *HANTEI'-------------------------ツギノメン ヘ イカセルカドウカ ハンテイチュウデアル
  160. 1600 LINE (16,32)-(303,79),PSET,[0,0,0],BF
  161. 1610 LINE (96,112)-(255,191),PSET,[0,0,0],BF
  162. 1620 IF MONO>10 THEN *STAGEEND
  163. 1630 GOTO *MHYOJI
  164. 1640 *STAGEEND
  165. 1650 IF NRNU(STAGE)>SEIKAI THEN *GAMEOVER ELSE *CLEAR
  166. 1660 *CLEAR'------------------------ナント、クリア- シオッタカ・・・・
  167. 1670 STAGE=STAGE+1:IF STAGE>10 THEN *ENDING
  168. 1680 SYMBOL (16,32),"  ♪ステージクリアー♪  ",1,1,[255,255,255],,PSET,1
  169. 1690 IF SEIKAI=10 THEN SYMBOL (16,48),"   !全問正解ボーナスだよ~ん!",1,1,[255,255,255],,PSET,1:SCORE=SCORE+100
  170. 1700 SYMBOL (16,64),"     Aボタンを押してね♪",1,1,[255,255,255],,PSET,1
  171. 1710 FOR I=0 TO 5:PUT@A (192+I*16,224)-(207+I*16,239),C6%,MATTE,,,0:NEXT I
  172. 1720 SCORE=SCORE+SEIKAI*10:SYMBOL (200,224),STR$(SCORE),1,1,[0,255,0],,PSET,1
  173. 1730 A=PTRIG(1):IF A=0 THEN 1730
  174. 1740 LINE (16,32)-(303,79),PSET,[0,0,0],BF
  175. 1750 LINE (96,112)-(255,191),PSET,[0,0,0],BF
  176. 1760 FOR I=0 TO 9
  177. 1770 PUT@A (7,144+I*8)-(22,150+I*8),C3%,MATTE,,,0
  178. 1780 PUT@A (32,144+I*8)-(47,150+I*8),C3%,MATTE,,,0
  179. 1790 NEXT I
  180. 1800 SCORE=SCORE+SEIKAI*10:SEIKAI=0:GOTO *SSTAGE
  181. 1810 *GAMEOVER'-----------------------フン オロカモノハゲームオーバージャ、ハッハッハッッッ
  182. 1820 SYMBOL (16,48)," 愚か者め、ゲームオーバーじゃ! ",1,1,[255,255,255],,PSET,1
  183. 1830 SYMBOL (16,64),"     ふん、Aボタンを押しなされ",1,1,[255,255,255],,PSET,1
  184. 1840 A=PTRIG(1):IF A=0 THEN 1840
  185. 1850 SEIKAI=0:SCORE=0:GOTO *START
  186. 1860 *ENDING'----------------------ムムッ エンディングマデクルヤツガイヨウトハ・・・フカクジャッタ
  187. 1870 SYMBOL (16,48),"  エンディングも開発中です・・  ",1,1,[255,255,255],,PSET,1
  188. 1880 A=PTRIG(1):IF A=0 THEN 1880
  189. 1890 GOTO *START
  190. 1900 *READDATA  'ぱたぁんでーたー読み込み
  191. 1910 DIM C1%(112),C2%(112),C3%(112),C4%(64),C5%(64),C6%(256)
  192. 1920 LOAD@ "a:mater1.ptd",C1%
  193. 1930 LOAD@ "a:mater2.ptd",C2%
  194. 1940 LOAD@ "a:mater3.ptd",C3%
  195. 1950 LOAD@ "a:lamp1.ptd",C4%
  196. 1960 LOAD@ "a:lamp2.ptd",C5%
  197. 1970 LOAD@ "a:kabe.ptd",C6%
  198. 1980 'OPEN "I",#1,"a:max.qiz"
  199. 1990 QMAX=131
  200. 2000 DIM QDAT1$(5,QMAX),QDAT2$(5,QMAX),QDAT3$(5,QMAX),QDAT4$(5,QMAX),QDAT5$(5,QMAX),QDAT6$(5,QMAX),QDAT7$(5,QMAX),QDAT8$(5,QMAX),QDAT9(5,QMAX),DETA(QMAX)
  201. 2010 I=4'FOR I=1 TO 5 クイズデーター読み込み
  202. 2020 ON I GOTO 2030,2040,2050,2060,2070
  203. 2030 OPEN "I",#1,"a:sports.qiz":GOTO *PHASE2'開発中の所です(^_^;)
  204. 2040 OPEN "I",#1,"a:ongaku.qiz":GOTO *PHASE2'開発中なんだってば(^_^;)
  205. 2050 OPEN "I",#1,"a:kagaku.qiz":GOTO *PHASE2'開発中でした(^_^;)
  206. 2060 OPEN "I",#1,"a:otaque.qiz":GOTO *PHASE2
  207. 2070 OPEN "I",#1,"a:bungaku.qiz":GOTO *PHASE2'開発中です!
  208. 2080 *PHASE2
  209. 2090 FOR J=1 TO QMAX
  210. 2100 INPUT #1,QDAT1$(I,J)
  211. 2110 INPUT #1,QDAT2$(I,J)
  212. 2120 INPUT #1,QDAT3$(I,J)
  213. 2130 INPUT #1,QDAT4$(I,J)
  214. 2140 INPUT #1,QDAT5$(I,J)
  215. 2150 INPUT #1,QDAT6$(I,J)
  216. 2160 INPUT #1,QDAT7$(I,J)
  217. 2170 INPUT #1,QDAT8$(I,J)
  218. 2180 INPUT #1,A$:QDAT9(I,J)=VAL(A$)
  219. 2190 NEXT J
  220. 2200 CLOSE #1
  221. 2210 'NEXT I
  222. 2220 RETURN
  223. 2230 *OPENING
  224. 2240 'T_FN$="Q_TLOGO":KKKK=1:GOSUB *T_MINIT
  225. 2250 SCREEN @2:CLS
  226. 2260 PALETTE 7,[0,0,0]:PALETTE 8,[0,0,0]
  227. 2270 SYMBOL (200,200),"PROGRAMMED BY",1,1,%7,,,1
  228. 2280 SYMBOL (240,220),"H.Tateno",1,1,%8,,,1
  229. 2290 FOR I=1 TO 255 STEP 3
  230. 2300 PALETTE 7,[I,I,I],1
  231. 2310 NEXT I:WAIT 100
  232. 2320 FOR I=1 TO 255 STEP 3
  233. 2330 PALETTE 8,[I,I,I],1
  234. 2340 NEXT I:WAIT 100
  235. 2350 FOR I=255 TO 0 STEP -3
  236. 2360 PALETTE 7,[I,I,I],1:PALETTE 8,[I,I,I],1
  237. 2370 NEXT I
  238. 2380 CLS
  239. 2390 SYMBOL (200,200),"PRODUCED BY",1,1,%7,,,1
  240. 2400 FOR I=1 TO 255 STEP 3
  241. 2410 PALETTE 7,[I,I,I],1
  242. 2420 NEXT I:WAIT 100
  243. 2430 FOR I=255 TO 0 STEP -3
  244. 2440 PALETTE 7,[I,I,I],1
  245. 2450 NEXT I
  246. 2460 CLS
  247. 2470 SYMBOL (200,200),"   TEAMα   ",1,1,%7,,,1
  248. 2480 FOR I=1 TO 255 STEP 3
  249. 2490 PALETTE 7,[I,I,I],1
  250. 2500 NEXT I:WAIT 200
  251. 2510 FOR I=255 TO 0 STEP -3
  252. 2520 PALETTE 7,[I,I,I],1
  253. 2530 NEXT I
  254. 2540 RETURN
  255.